1. Field of the Invention
This invention relates generally to digital apparatus, and more particularly the invention relates to microprogrammed apparatus and the sequencing of microprogram instructions for controlling the operation of microprogrammed apparatus.
2. Discussion of the Prior Art
In digital apparatus such as the arithmetic logic unit (ALU) of a digital computer, a number of data paths are available for operating on data in accordance with program instructions. Control of the data paths can be effected by hard wired random logic for each instruction, or the control can be effected by a microprogram for each instruction. A microprogram consists of a plurality of microinstructions with each microinstruction controlling data paths in the digital apparatus. The microinstructions are stored in a control memory, and a microprogram sequencer responds to program instructions or macroinstructions and sequentially addresses the microinstructions necessary for implementing each macroinstruction.
The development of high speed, bipolar VLSI microprogrammable building blocks has brought microprogrammed machine design to a new level of performance. The more recent developments have emphasized the data path section of the machine, such as faster ALU's scratch pad registers, and random access memory (RAM) files. However, to fully utilize the processing power of the data path a corresponding improvement in the control section of the machine is required. Thus, the control element including the microprogram sequencer and microprogram memory has now become a critical element in determining overall machine cycle time.
Many improvements have been made in the control memory including the provision of higher density devices, faster access time, the incorporation of pipeline registers, and the like. This has led to a savings in component interconnects, loading and propagation delays, and therefore to higher system performance.
However, the intelligent element of a control section, the microprogram sequencer, has largely been neglected with respect to performance. Its basic function, to provide the order in which microinstructions are fetched from control memory, has been emphasized while neglecting the decision making functions based on instructions and/or external conditions as well as the ability to handle interrupts including the ability to provide storage for saving and returning to various states of execution.